// BandPage.cs
// Facebook/Framework/Service
// Copyright (c) 2007, Nikhil Kothari. All Rights Reserved.
//

using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using Facebook.Service.Core;

namespace Facebook.Service {

    /// <summary>
    /// The band information associated with a PresencePage.
    /// </summary>
    public sealed class BandPage : FacebookEntity {

        internal BandPage(Hashtable pageState)
            : base(pageState) {
        }

        /// <summary>
        /// The name of the booking agent associated with the band.
        /// </summary>
        public string BookingAgent {
            get {
                return GetState<string>("booking_agent") ?? String.Empty;
            }
        }

        /// <summary>
        /// The current location of the band.
        /// </summary>
        public string CurrentLocation {
            get {
                return GetState<string>("hometown") ?? String.Empty;
            }
        }

        /// <summary>
        /// The hometown of the band.
        /// </summary>
        public string Hometown {
            get {
                return GetState<string>("hometown") ?? String.Empty;
            }
        }

        /// <summary>
        /// The set of influences called out by the band.
        /// </summary>
        public string Influences {
            get {
                return GetState<string>("influences") ?? String.Empty;
            }
        }

        /// <summary>
        /// The band's interests.
        /// </summary>
        public string Interests {
            get {
                return GetState<string>("band_interests") ?? String.Empty;
            }
        }

        /// <summary>
        /// The members making up the band.
        /// </summary>
        public string Members {
            get {
                return GetState<string>("band_members") ?? String.Empty;
            }
        }

        /// <summary>
        /// The names of artists that the band likes.
        /// </summary>
        public string OtherArtists {
            get {
                return GetState<string>("artists_we_like") ?? String.Empty;
            }
        }

        /// <summary>
        /// The record label associated with the band.
        /// </summary>
        public string RecordLabel {
            get {
                return GetState<string>("record_label") ?? String.Empty;
            }
        }
    }
}
